package com.zmn.oms.services.interfaces.orderencrypt;

import com.zmn.oms.common.enums.EncryptFieldTypeEnum;
import com.zmn.oms.model.entity.detail.OrderDetail;
import com.zmn.base.oms.common.model.es.orderwork.EsOrderWork;
import com.zmn.oms.model.vo.order.EsOrderDetailVO;

import java.util.List;

/**
 * 类描述：订单加解密服务
 * @author heciqi
 * @date 2021/8/3 14:00
 */
public interface OrderEncryptService {

	/**
	 * 批量加密
	 * @param list
	 * @return
	 */
	List<String> encrypt(List<String> list);

	/**
	 * 加密
	 * @param str
	 * @return
	 */
	String encrypt(String str);

	/**
	 * 解密
	 *
	 * @param str
	 * @return
	 */
	String decrypt(String str);

	/**
	 * 加密用户电话和地址
	 * @param orderDetail
	 */
	OrderDetail getEncryptOrderDetail(OrderDetail orderDetail);

	/**
	 * 解密用户电话和地址
	 * @param orderDetail
	 */
	OrderDetail getDecryptPhoneAndAddress(OrderDetail orderDetail);

	/**
	 * 解密用户电话和地址
	 * @param orderDetails
	 */
	void batchDecryptPhoneAndAddress(List<OrderDetail> orderDetails);

	/**
	 * 解密用户电话和地址
	 * @param esOrderDetailVOS
	 */
	void batchDecryptEsVoPhoneAndAddress(List<EsOrderDetailVO> esOrderDetailVOS);

	/**
	 * 解密用户电话和地址
	 * @param orderWorks
	 * @param encryptFieldType
	 */
	void batchDecryptEsOrderWork(List<EsOrderWork> orderWorks, EncryptFieldTypeEnum... encryptFieldType);
}
